package com.example.xpvideo.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 采购商订单表(PurchaseOrder)实体类
 *
 * @author 杨丽辉
 * @since 2021-08-09 18:19:25
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PurchaseOrder implements Serializable {
    private static final long serialVersionUID = -34704531116490424L;
        /**
    *主键
    * ${column.comment}
    * isnull 1
    */
        private Integer id;

    /**
    * 用户id
    * isnull 0
    */            private Integer customerId;
    /**
    * 商品id
    * isnull 0
    */            private Integer commodityId;
    /**
    * 优惠券id
    * isnull 0
    */            private Integer couponId;
    /**
    * 退款表id
    * isnull 0
    */            private Integer refundId;
    /**
    * 供货商id
    * isnull 0
    */            private Integer supplyChainId;
    /**
    * 地址id
    * isnull 0
    */            private Integer addrId;
    /**
    * 订单金额
    * isnull 0
    */            private BigDecimal orderPrice;
    /**
    * 优惠券抵扣金额
    * isnull 0
    */            private BigDecimal couponPrice;
    /**
    * 订单号
    * isnull 0
    */            private String orderCode;
    /**
    * 0待付款，1已付款待发货，2已发货待收货，3已收货待评价，4已完成，5已取消
    * isnull 0
    */            private Integer orderStage;
    /**
    * 订单创建时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfCreat;
    /**
    * 订单付款时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfPayment;
    /**
    * 订单发货时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfDeliver;
    /**
    * 订单收货时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfReceive;
    /**
    * 订单完成时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfComplete;
    /**
    * 订单取消时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfCancel;
    /**
    * 订单售后时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime timeOfRefund;
    /**
    * 售后状态，0未申请售后，1正在售后中，2售后完成，3售后拒绝，4自行取消售后
    * isnull 0
    */            private Integer refundStage;
    /**
    * 售后次数，上限3次
    * isnull 0
    */            private Integer numberOfRefund;
    /**
    * 支付方式，1支付宝，2微信，3余额，4线下汇款
    * isnull 0
    */            private Integer payType;
    /**
    * 购买件数
    * isnull 0
    */            private Integer shopNum;
    /**
    * 备注
    * isnull 0
    */            private String describe;
    /**
    * 快递公司
    * isnull 0
    */            private String deliveryCompany;
    /**
    * 快递单号
    * isnull 0
    */            private String deliverySn;
    /**
    * 实付金额
    * isnull 0
    */            private BigDecimal paymentAmount;
    /**
    * 1普通订单，2秒杀订单，3拼团订单;4老酒订单；5砍价订单；6积分商城订单
    * isnull 0
    */            private Integer orderType;
    /**
    * 售后通过时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime refundOfComplete;
    /**
    * 售后拒绝时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime refundOfRefuse;
    /**
    * 统一单号
    * isnull 0
    */            private String nonceOrder;
    /**
    * 抵扣红包数量
    * isnull 0
    */            private BigDecimal paymentRedPackage;
    /**
    * 更新时间
    * isnull 0
    */        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
            private LocalDateTime updateTime;
        
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
        
    public Integer getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Integer customerId) {
        this.customerId = customerId;
    }
        
    public Integer getCommodityId() {
        return commodityId;
    }

    public void setCommodityId(Integer commodityId) {
        this.commodityId = commodityId;
    }
        
    public Integer getCouponId() {
        return couponId;
    }

    public void setCouponId(Integer couponId) {
        this.couponId = couponId;
    }
        
    public Integer getRefundId() {
        return refundId;
    }

    public void setRefundId(Integer refundId) {
        this.refundId = refundId;
    }
        
    public Integer getSupplyChainId() {
        return supplyChainId;
    }

    public void setSupplyChainId(Integer supplyChainId) {
        this.supplyChainId = supplyChainId;
    }
        
    public Integer getAddrId() {
        return addrId;
    }

    public void setAddrId(Integer addrId) {
        this.addrId = addrId;
    }
        
    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }
        
    public BigDecimal getCouponPrice() {
        return couponPrice;
    }

    public void setCouponPrice(BigDecimal couponPrice) {
        this.couponPrice = couponPrice;
    }
        
    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }
        
    public Integer getOrderStage() {
        return orderStage;
    }

    public void setOrderStage(Integer orderStage) {
        this.orderStage = orderStage;
    }
        
    public LocalDateTime getTimeOfCreat() {
        return timeOfCreat;
    }

    public void setTimeOfCreat(LocalDateTime timeOfCreat) {
        this.timeOfCreat = timeOfCreat;
    }
        
    public LocalDateTime getTimeOfPayment() {
        return timeOfPayment;
    }

    public void setTimeOfPayment(LocalDateTime timeOfPayment) {
        this.timeOfPayment = timeOfPayment;
    }
        
    public LocalDateTime getTimeOfDeliver() {
        return timeOfDeliver;
    }

    public void setTimeOfDeliver(LocalDateTime timeOfDeliver) {
        this.timeOfDeliver = timeOfDeliver;
    }
        
    public LocalDateTime getTimeOfReceive() {
        return timeOfReceive;
    }

    public void setTimeOfReceive(LocalDateTime timeOfReceive) {
        this.timeOfReceive = timeOfReceive;
    }
        
    public LocalDateTime getTimeOfComplete() {
        return timeOfComplete;
    }

    public void setTimeOfComplete(LocalDateTime timeOfComplete) {
        this.timeOfComplete = timeOfComplete;
    }
        
    public LocalDateTime getTimeOfCancel() {
        return timeOfCancel;
    }

    public void setTimeOfCancel(LocalDateTime timeOfCancel) {
        this.timeOfCancel = timeOfCancel;
    }
        
    public LocalDateTime getTimeOfRefund() {
        return timeOfRefund;
    }

    public void setTimeOfRefund(LocalDateTime timeOfRefund) {
        this.timeOfRefund = timeOfRefund;
    }
        
    public Integer getRefundStage() {
        return refundStage;
    }

    public void setRefundStage(Integer refundStage) {
        this.refundStage = refundStage;
    }
        
    public Integer getNumberOfRefund() {
        return numberOfRefund;
    }

    public void setNumberOfRefund(Integer numberOfRefund) {
        this.numberOfRefund = numberOfRefund;
    }
        
    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }
        
    public Integer getShopNum() {
        return shopNum;
    }

    public void setShopNum(Integer shopNum) {
        this.shopNum = shopNum;
    }
        
    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }
        
    public String getDeliveryCompany() {
        return deliveryCompany;
    }

    public void setDeliveryCompany(String deliveryCompany) {
        this.deliveryCompany = deliveryCompany;
    }
        
    public String getDeliverySn() {
        return deliverySn;
    }

    public void setDeliverySn(String deliverySn) {
        this.deliverySn = deliverySn;
    }
        
    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }
        
    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }
        
    public LocalDateTime getRefundOfComplete() {
        return refundOfComplete;
    }

    public void setRefundOfComplete(LocalDateTime refundOfComplete) {
        this.refundOfComplete = refundOfComplete;
    }
        
    public LocalDateTime getRefundOfRefuse() {
        return refundOfRefuse;
    }

    public void setRefundOfRefuse(LocalDateTime refundOfRefuse) {
        this.refundOfRefuse = refundOfRefuse;
    }
        
    public String getNonceOrder() {
        return nonceOrder;
    }

    public void setNonceOrder(String nonceOrder) {
        this.nonceOrder = nonceOrder;
    }
        
    public BigDecimal getPaymentRedPackage() {
        return paymentRedPackage;
    }

    public void setPaymentRedPackage(BigDecimal paymentRedPackage) {
        this.paymentRedPackage = paymentRedPackage;
    }
        
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

        @Override
    public String toString() {
        return "{" +
                    " \"id\":" + id +
                                  " ,\"customerId\":" + customerId +
                            " ,\"commodityId\":" + commodityId +
                            " ,\"couponId\":" + couponId +
                            " ,\"refundId\":" + refundId +
                            " ,\"supplyChainId\":" + supplyChainId +
                            " ,\"addrId\":" + addrId +
                            " ,\"orderPrice\":" + orderPrice +
                            " ,\"couponPrice\":" + couponPrice +
                            " ,\"orderCode\":" + orderCode +
                            " ,\"orderStage\":" + orderStage +
                            " ,\"timeOfCreat\":" + timeOfCreat +
                            " ,\"timeOfPayment\":" + timeOfPayment +
                            " ,\"timeOfDeliver\":" + timeOfDeliver +
                            " ,\"timeOfReceive\":" + timeOfReceive +
                            " ,\"timeOfComplete\":" + timeOfComplete +
                            " ,\"timeOfCancel\":" + timeOfCancel +
                            " ,\"timeOfRefund\":" + timeOfRefund +
                            " ,\"refundStage\":" + refundStage +
                            " ,\"numberOfRefund\":" + numberOfRefund +
                            " ,\"payType\":" + payType +
                            " ,\"shopNum\":" + shopNum +
                            " ,\"describe\":" + describe +
                            " ,\"deliveryCompany\":" + deliveryCompany +
                            " ,\"deliverySn\":" + deliverySn +
                            " ,\"paymentAmount\":" + paymentAmount +
                            " ,\"orderType\":" + orderType +
                            " ,\"refundOfComplete\":" + refundOfComplete +
                            " ,\"refundOfRefuse\":" + refundOfRefuse +
                            " ,\"nonceOrder\":" + nonceOrder +
                            " ,\"paymentRedPackage\":" + paymentRedPackage +
                            " ,\"updateTime\":" + updateTime +
                  '}';
    }


}
